home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / game / text / inform_lib66.readme < prev    next >
Text File  |  1997-09-05  |  11KB  |  259 lines

  1. Short:    Libraries for Inform - V6/6.
  2. Author:   nelson@vax.oxford.ac.uk (Graham Nelson)
  3. Uploader: Patrick Kellum (pk1@pobox.com)
  4. Type:     game/text
  5. Requires: inform613_amiga.lha
  6. Action:   NoStart
  7.  
  8. Inform Library 6/6 now released
  9. ===============================
  10.  
  11. Library 6/5 has a number of annoying, if minor, bugs -- as Dan
  12. Schmidt wrote on a backtrace showing the parser running,
  13.  
  14.    *** Golly this line looks suspicious ***
  15.  
  16. (how right he was) and "oops" didn't work at all, an irony which
  17. I'd better not take any credit for.  Since the annual competition
  18. is very nearly upon us it's high time for library 6/6, in which all
  19. known bugs are mended.  A new version of the compiler will follow
  20. in a few days.  Like every library since 6/3, this release of the
  21. library will only work with compiler version 6.10 or later.
  22.  
  23. As will be seen, the parser is slightly enhanced (see changes 237
  24. and 247) but there are no dramatic new features.
  25.  
  26. I'm repeating this post because I inadvertently left some tracing
  27. code in -- as anyone typing "oops" will have noticed.  I've removed
  28. this code and otherwise the library is unaltered from yesterday
  29. evening's version, so I'm not going to change the serial numbers.
  30.  
  31. As a temporary measure, you can get hold of the new library from the
  32. Inform 6 Home Page:
  33.  
  34.     http://www.gnelson.demon.co.uk/inform.html
  35.  
  36. (in the form of a tar archive containing all 8 of the files
  37. making up the library).  It will be filed in its proper place at
  38. ftp.gmd.de shortly, and then the temporary uploads page will be
  39. taken out.
  40.  
  41. I should like to thank everybody who emailed me with their woes
  42. and to sympathise with one and all, not least the authors of the
  43. forthcoming and marvellous "Zork: The Undiscovered Underground".
  44.  
  45.                                                     Graham Nelson
  46.                                                     18 August 1997
  47.  
  48. -----------------------------------------------------------------------------
  49.  
  50. Extracted from the 6-series library modification history, which
  51. resides on the World Wide Web at:
  52.  
  53.    http://www.gnelson.demon.com/lhistory.html
  54.  
  55. -------------------------
  56.  
  57. 227. Parser code cleaned slightly to prevent it from testing attributes
  58.     of object 0, which in theory is an abuse of the Z-machine (though in
  59.     practice it was harmless on existing interpreters).
  60.  
  61. 228. As Anson Turner kindly observed, any library 6/5 game could be hung
  62.     up into an infinite loop by typing three characters: "i.g", that is,
  63.     "inventory. again" which would perform an inventory and then repeat
  64.     the command "inventory. again"... "again" now works properly as one
  65.     of a chain of commands separated by full stops: e.g. "s.g.g.n.i.g"
  66.     makes three moves south, one move north and then takes inventory
  67.     twice.
  68.  
  69. 229. Very minor rule change concerning inventory entry printing.  If an
  70.     object's "invent" property replies "true", in old libraries the
  71.     game will omit any English language punctuation after the list entry
  72.     for the object -- this only tends to occur when giving a wide-format
  73.     inventory listing (try typing "inventory wide").  The feature was
  74.     supposed to add flexibility, but didn't in any practical way, and
  75.     caused problems with string-valued "invent"s (which automatically
  76.     replied true on being called).  Anyway, the new arrangements are
  77.     far more natural and this rule change is more of a bug fix.
  78.  
  79. 230. Grammar for "get" tweaked so that the bare command "get" replies
  80.     "What would like to get?", and not "What would you like to get in?"
  81.  
  82. 231. "oops" didn't work.  An oversight on my part -- when rehashing the
  83.     parser to be more textually based, and less reliant on dictionary
  84.     parses, I forgot to rehash "oops".  It seems healthy now (and is
  85.     a better implementation than it used to be anyway).
  86.  
  87. 232. "found_in" routines are now properly sent messages, (so that for
  88.     instance "self" has the correct value in a "found_in" routine).
  89.  
  90. 233. Numbers above 100 printed textually are now correctly spaced if
  91.     the US_DIALECT option is set.
  92.  
  93. 234. Returning 0 from "door_to" routines did not always work.  This
  94.     code has been rewritten so that the library consults "door_to"
  95.     as a message in the natural way.  So you can either quote
  96.  
  97.         door_to 0,
  98.         door_to 1,
  99.         door_to Balcony,
  100.         door_to "Some invisible force prevents your entry.",
  101.         door_to
  102.         [;  if (random(2)==1) "The swing-doors push you back.";
  103.             print "Through the doors the path becomes confused.^";
  104.             return random(Room1, Room2, Room3);
  105.         ],
  106.  
  107.     To recap, the result of consulting "door_to" has to be either
  108.        0: this leads nowhere and please print a message saying so,
  109.        1: this leads nowhere but I've already printed something
  110.     or the object number of the room to go to.
  111.  
  112. 235. The extra space on the status line in "time" games, when the
  113.     time is just after noon or midnight, has been removed.
  114.  
  115. 236. A serious but rare error, causing the parser to crash while parsing
  116.     prepositions at the end of some grammar lines, removed.
  117.  
  118. 237. If the player types "get two of hearts", what is being referred to,
  119.     a single object (a card from a pack of cards) or two from a
  120.     collection (say, a freezer full of transplant organs)?  The 6/5
  121.     parser would always assume the latter; the 6/6 parser now tries
  122.     both assumptions.  To demonstrate:
  123.  
  124.         Card School
  125.         A room full of green baize tables.
  126.  
  127.         You can see a two of hearts, a two of spades, a jack of hearts,
  128.         a seven of spades, a three of clubs and a seven of clubs here.
  129.  
  130.         >get two of spades
  131.         Taken.
  132.  
  133.         >get two of clubs
  134.         three of clubs: Taken.
  135.         seven of clubs: Taken.
  136.  
  137.         >get two
  138.         (the two of hearts)
  139.         Taken.
  140.  
  141.         >drop two twos
  142.         two of hearts: Dropped.
  143.         two of spades: Dropped.
  144.  
  145.     Similarly, phrases like "two of hearts" are now always assumed to
  146.     refer to single objects if the grammar in question would require
  147.     a singular and not a plural.  (For instance, "examine two of hearts"
  148.     implicitly calls for only one object to be examined.)  Finally,
  149.     the treatment of "one" is now subtly different from "a" or "an"
  150.     to allow for its possible use as a noun: so you could have a
  151.     "one of diamonds", say, without parsing trouble.
  152.  
  153. 238. "drop me" now produces a reasonable response.
  154.  
  155. 239. "noun=FilterRoutine" grammar tokens sometimes caused mysterious
  156.     crashes in large games where the routine in question was towards
  157.     the end of the program.  (Thanks to Magnus Olsson for pointing
  158.     out both problem and solution.)
  159.  
  160. 240. The time at which "MoveFloatingObjects()" is called has been
  161.     slightly altered.  This affects objects which are present in many
  162.     rooms simultaneously (e.g. "sky" or "water").  What has changed
  163.     is that objects are now correctly moved into place even when the
  164.     room in question is in "Darkness" -- this is particularly
  165.     important if the object itself is the only light source, e.g. if
  166.     it is the Moon, or a strip-light running down a long corridor.
  167.  
  168. 241. Objects which are handled only very briefly because of "implicit
  169.     take commands", like so:
  170.  
  171.         >give bun to elephant
  172.         (first taking the bun)
  173.         The elephant swallows the bun and trumpets.
  174.  
  175.     ...are now given the attribute "moved", will give you any score
  176.     that should accrue from having once held them, and will appear
  177.     in the output of the "Objects" command.  (Previously the period
  178.     of ownership was so brief that the library failed to apply these
  179.     rules.)
  180.  
  181. 242. Messages involving "it", "that", "those", etc. now correctly
  182.     use "her", "him", etc., as needed: e.g.
  183.  
  184.         You need to be holding the elephant before you can put
  185.         him in the striped box.
  186.  
  187. 243. If the player is on top of something which itself rests on
  188.     something (say, on a chair on top of a billiards table) then the
  189.     room description no longer lists any objects on the lower
  190.     supporter(s) twice.
  191.  
  192. 244. The parser sometimes used to misunderstand answers to the questions
  193.     asked when the player typed so little original input that the parser
  194.     had to infer a preposition, and then ask a question: e.g.
  195.  
  196.         >put key
  197.         What do want to put the key in?      [Notice inferred "in"]
  198.         >box
  199.         You can't see any such thing.
  200.  
  201.     even though there is a box in scope.  This is now mended.
  202.  
  203. 245. A bug occurring with multiple alternative prepositions in grammar
  204.     lines (of games so large that the dictionary extends past 32K in the
  205.     game's memory map) has been removed.
  206.  
  207. 246. The newish rules requiring objects to be touchable (see 207 above)
  208.     are now waived in the case of anything explicitly declared to be
  209.     present using "add_to_scope": that is, as long as object O is
  210.     touchable, then anything added to scope by O will be considered
  211.     touchable as well (including any children of anything added to scope
  212.     by O, and so on down).
  213.  
  214. 247. Disambiguation has been made slightly more sensitive.  Previously,
  215.     when parsing for a "noun" (or a "multi") token the parser would
  216.     prefer anything in the actor's location to something the actor is
  217.     carrying.  This preference is withdrawn for "noun" tokens.
  218.     As well as preventing the parser from leaping to conclusions, the
  219.     change gives the designer's "ChooseObjects" routine a greater weight
  220.     in deciding between objects.  E.g., given the routine...
  221.  
  222.         [ ChooseObjects candidate code;
  223.           if (code == 2)
  224.           {   if (action_to_be == ##Push)
  225.                   if (candidate ofclass Button) return 2;
  226.           }
  227.           return 0;
  228.         ];
  229.  
  230.     ...if the player were to type "push red" while holding a device
  231.     with a red button on, and standing in front of a red pillar box,
  232.     "ChooseObjects" would have the casting vote and the button would
  233.     be pushed (even though it's being held and Push is an action
  234.     normally considered to apply externally).
  235.  
  236.     The preference for things on the floor is continued for "multi"
  237.     tokens (where it helps "get all" to work), but with new exceptions:
  238.     no preference is made for (a) scenery, (b) "concealed" objects or
  239.     (c) the actor himself.
  240.  
  241. -----------------------------------------------------------------------------
  242.  
  243.  
  244. ============================= Archive contents =============================
  245.  
  246. Original  Packed Ratio    Date     Time    Name
  247. -------- ------- ----- --------- --------  -------------
  248.    34584    8266 76.0% 24-Aug-97 01:38:54  English.h
  249.    17155    3183 81.4% 24-Aug-97 01:38:56  Grammar.h
  250.     2594     814 68.6% 24-Aug-97 01:38:56  linklpa.h
  251.     4050    1037 74.3% 24-Aug-97 01:38:56  linklv.h
  252.      937     443 52.7% 24-Aug-97 01:38:56  Parser.h
  253.   161241   47595 70.4% 24-Aug-97 01:38:56  parserm.h
  254.     1030     451 56.2% 24-Aug-97 01:38:56  Verblib.h
  255.    52385   12831 75.5% 24-Aug-97 01:38:56  verblibm.h
  256.    10152    4484 55.8% 24-Aug-97 01:42:02  Relnote.txt
  257. -------- ------- ----- --------- --------
  258.   284128   79104 72.1% 24-Aug-97 14:41:46   9 files
  259.